//
//  STStatusCell.m
//  OCVVeibo
//
//  Created by leergou on 16/7/27.
//  Copyright © 2016年 WhiteHouse. All rights reserved.
//

#import "STStatusCell.h"
#import "STStatusOriginalView.h"
#import "STStatusRetweetView.h"
#import "STStatusToolBarView.h"
#import "STStatusDTO.h"
#import "STStatusVM.h"
#import <MASConstraint.h>

@interface STStatusCell ()

/** 原创微博 */
@property (nonatomic,strong) STStatusOriginalView *originalView;
/** 转发微博 */
@property (nonatomic,strong) STStatusRetweetView *retweetView;
/** 底部工具条 */
@property (nonatomic,strong) STStatusToolBarView *toolBarView;

@property (nonatomic,strong) MASConstraint *toolBarBottomConstraint;

@end

@implementation STStatusCell


#pragma mark - 重写模型 set 方法,分发数据
- (void)setStatusVM:(STStatusVM *)statusVM{
    _statusVM = statusVM;
    
    //MARK: 原创微博
//    self.originalView.status = statusVM.status;
    self.originalView.statusVM = statusVM;
    
    // 判断是否有转发微博
    // 首先卸载 转发底部视图约束
    [self.toolBarBottomConstraint uninstall];
    // MARK: 转发微博视图
    // 判断是否有转发,有则赋值
    if (statusVM.status.retweeted_status) {
        // 赋值
        self.retweetView.statusVM = statusVM;
        // 更改约束
        [self.toolBarView makeConstraints:^(MASConstraintMaker *make) {
            self.toolBarBottomConstraint = make.top.equalTo(self.retweetView.bottom);
        }];
        // 显示转发视图
        self.retweetView.hidden = NO;
    } else {
        // 更改约束
        [self.toolBarView makeConstraints:^(MASConstraintMaker *make) {
            self.toolBarBottomConstraint = make.top.equalTo(self.originalView.bottom);
        }];
        // 隐藏转发视图
        self.retweetView.hidden = YES;
    }
    //MAKR: 底部视图
    self.toolBarView.statusVM = statusVM;
}

#pragma mark - 重写模型set 方法,分发数据
//- (void)setStatus:(STStatusDTO *)status{
//    _status = status;
//    //MARK: 原创微博
//    self.originalView.status = status;
//    
//    // 首先卸载 转发底部视图约束
//    [self.toolBarBottomConstraint uninstall];
//    // MARK: 转发微博视图
//    // 判断是否有转发,有则赋值
//    if (status.retweeted_status) {
//        // 赋值
//        self.retweetView.status = status;
//        // 更改约束
//        [self.toolBarView makeConstraints:^(MASConstraintMaker *make) {
//            self.toolBarBottomConstraint = make.top.equalTo(self.retweetView.bottom);
//        }];
//        // 显示转发视图
//        self.retweetView.hidden = NO;
//    } else {
//        // 更改约束
//        [self.toolBarView makeConstraints:^(MASConstraintMaker *make) {
//            self.toolBarBottomConstraint = make.top.equalTo(self.originalView.bottom);
//        }];
//        // 隐藏转发视图
//        self.retweetView.hidden = YES;
//    }
//    //MAKR: 底部视图
//}


#pragma mark - 类入口
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        
        [self setupUI];
    }
    return self;
}


#pragma mark - setupUI
- (void)setupUI{
    
    self.backgroundColor = RGBCOLOR(237, 237, 237);
    
    // 添加子控件
    [self.contentView addSubview:self.originalView];
    [self.contentView addSubview:self.retweetView];
    [self.contentView addSubview:self.toolBarView];
    
    //
    // 添加约束
    [self.originalView makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.contentView).offset(8);
        make.leading.trailing.equalTo(self.contentView);
        //        make.height.equalTo(125);
    }];
    
    [self.retweetView makeConstraints:^(MASConstraintMaker *make) {
        make.top.equalTo(self.originalView.bottom);
        make.leading.trailing.equalTo(self.contentView);
//        make.height.equalTo(80);
    }];
    
    [self.toolBarView makeConstraints:^(MASConstraintMaker *make) {
        self.toolBarBottomConstraint =  make.top.equalTo(self.retweetView.bottom);
        make.leading.trailing.equalTo(self.contentView);
        make.height.equalTo(35);
    }];
    
    // 设置cell 本身高度的约束,自动调整行高-->自动计算行高,cell 高度是由 contentView 高度决定
    [self.contentView makeConstraints:^(MASConstraintMaker *make) {
        make.top.leading.trailing.equalTo(self);
        make.bottom.equalTo(self.toolBarView.bottom);
    }];
    
}

#pragma mark - layoutSubViews
#pragma mark - 设置约束--用 Masonry 做约束,约束直接跟在 添加 后面,若写在 layoutSubviews 中,有时候会导致布局有错误,如果想直接修改frame,可以在 layoutSubviews 中修改
- (void)layoutSubviews{
    [super layoutSubviews];
    
//    // 添加约束
//    [self.originalView makeConstraints:^(MASConstraintMaker *make) {
//        make.top.leading.trailing.equalTo(self.contentView);
////        make.height.equalTo(125);
//    }];
//    
//    [self.retweetView makeConstraints:^(MASConstraintMaker *make) {
//        make.top.equalTo(self.originalView.bottom);
//        make.leading.trailing.equalTo(self.contentView);
//        make.height.equalTo(80);
//    }];
//    
//    [self.toolBarView makeConstraints:^(MASConstraintMaker *make) {
//        make.top.equalTo(self.retweetView.bottom);
//        make.leading.trailing.equalTo(self.contentView);
//        make.height.equalTo(35);
//    }];
//    
//    // 设置cell 本身高度的约束,自动调整行高-->自动计算行高,cell 高度是由 contentView 高度决定
//    [self.contentView makeConstraints:^(MASConstraintMaker *make) {
//        make.top.leading.trailing.equalTo(self);
//        make.bottom.equalTo(self.toolBarView.bottom);
//    }];
    
}

#pragma mark - lazy
- (STStatusOriginalView *)originalView{
    if (!_originalView) {
        _originalView = [[STStatusOriginalView alloc] init];
    }
    return _originalView;
}

- (STStatusRetweetView *)retweetView{
    
    if (!_retweetView) {
        _retweetView = [[STStatusRetweetView alloc] init];
    }
    return _retweetView;
}

- (STStatusToolBarView *)toolBarView{
    if (!_toolBarView) {
        _toolBarView = [[STStatusToolBarView alloc] init];
    }
    return _toolBarView;
}

@end


























